// 游戏配置文件

export interface VehicleConfig {
    width: number;
    length: number;
    probability: number; // 生成概率
}

export interface GameConfig {
    // 屏幕配置
    screenWidth: number;
    screenHeight: number;
    
    // 车道配置
    laneCount: number;  // 6车道
    laneWidth: number;  // 车道宽度
    roadOffset: number; // 马路距离左边的偏移量
    
    // 车辆配置
    vehicles: {
        car: VehicleConfig;
        bus: VehicleConfig;
        truck: VehicleConfig;
        van: VehicleConfig;
    };
    
    // 速度配置
    speed: {
        initial: number;        // 初始速度 (像素/秒)
        baseKmh: number;       // 基础速度对应的实际车速(km/h)
        increaseRate: number;   // 每关增加的速度比例
    };
    
    // 车辆生成配置
    spawn: {
        initialInterval: number; // 初始生成间隔 (毫秒)
        minInterval: number;    // 最小生成间隔 (毫秒)
    };
    
    // 玩家配置
    player: {
        width: number;
        height: number;
        moveSpeed: number;     // 移动速度 (像素/秒)
        startX: number;        // 起点X坐标
        endX: number;         // 终点X坐标
    };

    // 天桥配置
    bridge: {
        y: number;           // 天桥高度位置
        width: number;       // 天桥宽度
        height: number;      // 天桥高度
        leftX: number;       // 天桥左端位置
        rightX: number;      // 天桥右端位置
        platformWidth: number; // 两侧站台宽度
        goalTriggerWidth: number;  // 终点触发区域宽度
    };
}

// 默认游戏配置
export const defaultConfig: GameConfig = {
    screenWidth: 375,  // 默认移动设备宽度
    screenHeight: 667, // 默认移动设备高度
    
    laneCount: 6,     // 总共6车道
    laneWidth: 40,    // 车道宽度更窄
    roadOffset: 50,   // 马路左右各留出50px的空间
    
    vehicles: {
        car: {
            width: 25,    // 标准轿车宽度
            length: 50,   // 标准轿车长度
            probability: 0.4
        },
        bus: {
            width: 35,    // 公交车宽度
            length: 90,   // 公交车长度
            probability: 0.2
        },
        truck: {
            width: 35,    // 卡车宽度
            length: 70,   // 卡车长度
            probability: 0.2
        },
        van: {
            width: 25,    // 面包车宽度
            length: 60,   // 面包车长度
            probability: 0.2
        }
    },
    
    speed: {
        initial: 200,      // 基础速度（实际会在代码中翻倍）
        baseKmh: 60,      // 显示速度从60km/h开始
        increaseRate: 0.2  // 每关增加20%速度
    },
    
    spawn: {
        initialInterval: 1000,  // 初始1秒生成一辆车（频率加倍）
        minInterval: 500       // 最小间隔0.5秒
    },
    
    player: {
        width: 30,
        height: 50,
        moveSpeed: 300,    // 移动速度
        startX: 0,        // 起点X坐标（会在游戏中根据天桥位置计算）
        endX: 0          // 终点X坐标（会在游戏中根据天桥位置计算）
    },
    
    bridge: {
        y: 400,           // 天桥位置下移到屏幕中央偏下
        width: 475,       // 天桥总宽度（包括两侧站台）
        height: 30,       // 天桥高度
        leftX: -50,       // 天桥左端位置（延伸到路外）
        rightX: 425,      // 天桥右端位置（延伸到路外）
        platformWidth: 80, // 两侧站台宽度
        goalTriggerWidth: 20  // 终点触发区域宽度（更窄）
    }
};